package com.itheima.datastructure.demo1;

/**
 * MaxSeq 类用于查找数组中连续递增子序列的最大长度。
 */
public class MaxSeq {
    /**
     * 程序的入口点。
     * @param args 命令行参数，未使用。
     */
    public static void main(String[] args) {
        // 使用预定义的数组测试 findLength 函数
        System.out.println(findLength(new int[]{1, 2, 3, 2, 3, 4, 3, 4, 5, 6, 7}));
    }

    /**
     * 查找并返回给定数组中连续递增子序列的最大长度。
     * @param nums 输入的整数数组。
     * @return 连续递增子序列的最大长度。
     */
    public static int findLength(int[] nums) {
        // 检查数组是否为空或长度为0
        if (nums == null || nums.length == 0) {
            return 0;
        }

        // 初始化变量
        int currentStartIndex = 0; // 当前递增子序列的起始索引
        int longestSubsequenceLength = 1; // 目前找到的最长递增子序列的长度

        // 遍历数组以查找最长的递增子序列
        for (int i = 1; i < nums.length; i++) {
            // 如果当前元素不大于前一个元素，则重置子序列的起始位置
            if (nums[i] <= nums[i - 1]) {
                currentStartIndex = i;
            }
            // 更新最长子序列的长度
            longestSubsequenceLength = Math.max(longestSubsequenceLength, i - currentStartIndex + 1);
        }

        // 返回最长递增子序列的长度
        return longestSubsequenceLength;
    }
}